package br.ufpe.cin.plebeia.webapp.form;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

import br.ufpe.cin.plebeia.model.Usuario;

public class UsuarioActionForm extends ActionForm {

	private static final long serialVersionUID = 1L;

	Usuario usuario = new Usuario();

	String nome;

	String login;

	String id;

	String senha;

	String permissao;

	String confirmacaoSenha = null;

	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		ActionErrors errors = new ActionErrors();

		if (getNome() == null || getNome().length() < 1) {
			errors.add("nome", new ActionMessage("error.nome.required"));
		}
		if (getSenha() == null || getSenha().length() < 1) {
			errors.add("senha", new ActionMessage("error.senha.required"));
		}
		if (getPermissao() == 0) {
			errors.add("permissao", new ActionMessage(
					"error.permissao.required"));
		}
		if (getSenha() == null || !getSenha().equals(getConfirmacaoSenha())) {
			errors.add("senha", new ActionMessage(
					"error.confirmacaoSenha.required"));
		}

		return errors;
	}

	public String getConfirmacaoSenha() {
		return confirmacaoSenha;
	}

	public void setConfirmacaoSenha(String confirmacaoSenha) {
		this.confirmacaoSenha = confirmacaoSenha;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
		confirmacaoSenha = usuario.getSenha();
	}

	public boolean equals(Object obj) {
		return usuario.equals(obj);
	}

	public long getId() {
		return usuario.getId();
	}

	public String getLogin() {
		return usuario.getLogin();
	}

	public String getNome() {
		return usuario.getNome();
	}

	public int getPermissao() {
		return usuario.getPermissao();
	}

	public String getSenha() {
		return usuario.getSenha();
	}

	public int getVersion() {
		return usuario.getVersion();
	}

	public int hashCode() {
		return usuario.hashCode();
	}

	public void setId(long id) {
		usuario.setId(id);
	}

	public void setLogin(String login) {
		usuario.setLogin(login);
	}

	public void setNome(String nome) {
		usuario.setNome(nome);
	}

	public void setPermissao(int permissao) {
		usuario.setPermissao(permissao);
	}

	public void setSenha(String senha) {
		usuario.setSenha(senha);
	}

	public void setVersion(int version) {
		usuario.setVersion(version);
	}

	public String toString() {
		return usuario.toString();
	}

}
